/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Expertos;

import Entidades.Empleado;
import Entidades.EstadoLicencia;
import Entidades.Licencia;
import Entidades.TipoLicencia;
import Persistencia.JpaController;
import java.util.Date;
import java.util.List;

/**
 *
 * @author diego
 */
public class ExpertoLicencias {

    EstadoLicencia el = new EstadoLicencia();

    public List<Licencia> buscarLicencias() {
        List<Licencia> listalicencias;
        JpaController jpap = new JpaController();
        listalicencias = jpap.findEntities(Licencia.class);
        return listalicencias;
    }

    public void autorizarLicencia(EstadoLicencia estado) {
        JpaController jpa = new JpaController();
        jpa.begin();
        jpa.edit(estado);
        jpa.commit();
    }

    public void rechazarLicencia(EstadoLicencia estado) {
        JpaController jpa = new JpaController();
        jpa.begin();
        jpa.edit(estado);
        jpa.commit();
    }

    public void enusoLicencia(EstadoLicencia estado) {
        JpaController jpa = new JpaController();
        jpa.begin();
        jpa.edit(estado);
        jpa.commit();
    }

    public EstadoLicencia solicitarLicencia(Date fechaCambioEstado, String nombreEstado, String observacionLicencia, Licencia lic2) {
        JpaController jpa = new JpaController();
        EstadoLicencia el2 = new EstadoLicencia();
        el2.setFechaCambioEstado(fechaCambioEstado);
        el2.setNombreEstado(nombreEstado);
        el2.setObservacion(observacionLicencia);
        el2.setIdLicencia(lic2);
        jpa.begin();
        jpa.create(el2);
        jpa.commit();
        return el2;
    }

    public Licencia crearLicencia(Date licinicio, Date licfin, TipoLicencia tipoLicencia, int numero, Empleado emplelic) {
        JpaController jpa = new JpaController();
        Licencia lic = new Licencia();
        lic.setFechaInicioLicencia(licinicio);
        lic.setFechaFinLicencia(licfin);
        lic.setIdEmpleado(emplelic);
        lic.setIdtipoLicencia(tipoLicencia);
        lic.setNumeroLicencia(numero);
        jpa.begin();
        jpa.create(lic);
        jpa.commit();
        return lic;
    }

    public Licencia agregarEstados(Licencia l, List<EstadoLicencia> el) {
        l.setEstadoLicenciaCollection(el);
        JpaController jpa = new JpaController();
        jpa.begin();
        jpa.edit(l);
        jpa.commit();
        return l;
    }
        public void actualizarLicencia(List<Licencia> lic) {
        JpaController jpa = new JpaController();
        jpa.begin();
        jpa.edit(lic);
        jpa.commit();
    }
}
